
<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta content="text/javascript" http-equiv="content-script-type">
<title>system.collections.LinkedList</title>
<link rel="stylesheet" type="text/css" href="candydoc/style.css">
<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="candydoc/ie56hack.css"><![endif]-->
<script language="JavaScript" src="candydoc/util.js" type="text/javascript"></script>
<script language="JavaScript" src="candydoc/tree.js" type="text/javascript"></script>
<script language="JavaScript" src="candydoc/explorer.js" type="text/javascript"></script>
</head><body>
<div id="tabarea"></div><div id="explorerclient"></div>
<div id="content"><script>explorer.initialize("system.collections.LinkedList");</script>
	<table class="content">
		<tr><td id="docbody"><h1>system.collections.LinkedList</h1><!-- Generated by Ddoc from F:\MyWork\phoenix\source\system\collections\LinkedList.d -->
双向链表模块。
<br><br>
<b>License:</b><br>
BSD
<br><br>
<b>Authors:</b><br>
Lucifer (786325481@QQ.com)
<br><br>


<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">class 
<span class="currsymbol">LinkedListNode</span>
<script>explorer.outline.addDecl('LinkedListNode');</script>

(T);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>表示 LinkedList(T) 中的节点。无法继承此类。
<br><br>
<b>Comments:</b><br>
LinkedList(T) 集合的每个元素都是 
<span class="currsymbol">LinkedListNode</span>
<script>explorer.outline.addDecl('LinkedListNode');</script>

(T)。
           
<span class="currsymbol">LinkedListNode</span>
<script>explorer.outline.addDecl('LinkedListNode');</script>

(T) 包含一个值，对其所属的 LinkedList(T) 引用，
           对前一个节点的引用以及对后一个节点的引用。
 
<br><br>


<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">this(T value);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>初始化 LinkedListNode(T) 类的新实例，该实例包含指定的值。
<br><br>
<b>Comments:</b><br>
list、next 和 previous 属性都设置为 <b>null</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedList!(T) 
<span class="currsymbol">list</span>
<script>explorer.outline.addDecl('list');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取 LinkedListNode(T) 所属的 LinkedList(T)。
<br><br>
<b>Comments:</b><br>
如果 LinkedListNode(T) 未链接，则为 <b>null</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">previous</span>
<script>explorer.outline.addDecl('previous');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取 LinkedList(T) 中的前一个节点。
<br><br>
<b>Comments:</b><br>
如果当前节点是 LinkedList(T) 的第一个元素 (First)，则为 <b>null</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">next</span>
<script>explorer.outline.addDecl('next');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取 LinkedList(T) 中的后一个节点。
<br><br>
<b>Comments:</b><br>
如果当前节点是 LinkedList(T) 的最后一个元素 (Last)，则为 <b>null</b>。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">T 
<span class="currsymbol">value</span>
<script>explorer.outline.addDecl('value');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取节点中包含的值。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">value</span>
<script>explorer.outline.addDecl('value');</script>

(T <span class="funcparam">otherValue</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>设置节点中包含的值。
	 
<br><br>

</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">class 
<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T): IList!(T), ICollection!(T), IEnumerable!(T);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>表示双向链表。
<br><br>
<b>Comments:</b><br>

<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T) 为通用链表。
<br><br>

           
<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T) 提供 LinkedListNode(T) 类型的单独节点，
           因此插入和移除的运算复杂度为 O(1)。
<br><br>

           可以移除节点，然后在同一列表或其他列表中重新插入它们，
           这样在堆中便不会分配额外的对象。
<br><br>

           由于该列表还维护内部计数，因此获取 count 属性的运算复杂度为 O(1)。
<br><br>

           由于 
<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T) 是双向链表，因此每个节点向前指向 next 节点，向后指向 previous 节点。
<br><br>

           如果节点及其值是同时创建的，则包含引用类型的列表性能会更好。
           
<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T) 接受 <b>null</b> 作为引用类型的有效 Value 属性，并且允许重复值。
<br><br>

           如果 
<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T) 为空，则 first 和 last 属性为 <b>null</b>。
<br><br>

           
<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T) 类不支持使列表处于不一致状态的链接、拆分、循环或其他功能。
           在单个线程上列表保持一致。
           
<span class="currsymbol">LinkedList</span>
<script>explorer.outline.addDecl('LinkedList');</script>

(T) 支持的唯一多线程方案是多线程读取操作。
 
<br><br>


<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">this();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>初始化为空的 LinkedList(T) 类的新实例。
<br><br>
<b>Comments:</b><br>
LinkedList(T) 接受 <b>null</b> 作为引用类型的有效 value，并且允许重复值。
           如果 LinkedList(T) 为空，则 first 和 last 属性为 <b>null</b>。
           此构造函数的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">this(IEnumerable!(T) collection);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>初始化 LinkedList(T) 类的新实例。
 该实例包含从指定的 IEnumerable(T) 中复制的元素并且其容量足以容纳所复制的元素数。
<br><br>
<b>Comments:</b><br>
ditto。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">validateNode</span>
<script>explorer.outline.addDecl('validateNode');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>验证已被引用的节点。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">addAfter</span>
<script>explorer.outline.addDecl('addAfter');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>, T <span class="funcparam">value</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 中指定的现有节点后添加包含指定值的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">node</span></td>

               
<td>要在其后插入包含 <span class="funcparam">value</span> 的新 LinkedListNode(T) 的 LinkedListNode(T)。</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">value</span></td>

               
<td>要添加到 LinkedList(T) 的值。</td></tr>
</table><br>
<b>Returns:</b><br>
包含 <span class="funcparam">value</span> 的新 LinkedListNode(T)。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">addAfter</span>
<script>explorer.outline.addDecl('addAfter');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>, LinkedListNode!(T) <span class="funcparam">newNode</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 中指定的现有节点后添加指定的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">node</span></td>

               
<td>要在其后插入包含 value 的新 LinkedListNode(T) 的 LinkedListNode(T)。</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">newNode</span></td>

               
<td>要添加到 LinkedList(T) 的新 LinkedListNode(T)。</td></tr>
</table><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">addBefore</span>
<script>explorer.outline.addDecl('addBefore');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>, T <span class="funcparam">value</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 中指定的现有节点前添加包含指定值的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">node</span></td>

               
<td>要在其前插入包含 <span class="funcparam">value</span> 的新 LinkedListNode(T) 的 LinkedListNode(T)。</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">value</span></td>

               
<td>要添加到 LinkedList(T) 的值。</td></tr>
</table><br>
<b>Returns:</b><br>
包含 <span class="funcparam">value</span> 的新 LinkedListNode(T)。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">addBefore</span>
<script>explorer.outline.addDecl('addBefore');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>, LinkedListNode!(T) <span class="funcparam">newNode</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 中指定的现有节点前添加指定的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">node</span></td>

               
<td>要在其前插入 <span class="funcparam">newNode</span> 的 LinkedListNode(T)。</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">newNode</span></td>

               
<td>要添加到 LinkedList(T) 的新 LinkedListNode(T)。</td></tr>
</table><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">addFirst</span>
<script>explorer.outline.addDecl('addFirst');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 的开头处添加指定的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">node</span></td>

               
<td>要在 LinkedList(T) 的开头处添加的新 LinkedListNode(T)。</td></tr>
</table><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">addFirst</span>
<script>explorer.outline.addDecl('addFirst');</script>

(T <span class="funcparam">value</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 的开头处添加包含指定值的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">value</span></td>

               
<td>要在 LinkedList(T) 的开头处添加的值。</td></tr>
</table><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">addLast</span>
<script>explorer.outline.addDecl('addLast');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 的结尾处添加指定的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">node</span></td>

               
<td>要添加至 LinkedList(T) 结尾的新 LinkedListNode(T)。</td></tr>
</table><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">addLast</span>
<script>explorer.outline.addDecl('addLast');</script>

(T <span class="funcparam">value</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>在 LinkedList(T) 的结尾处添加包含指定值的新节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">value</span></td>

               
<td>要添加到 LinkedList(T) 的末尾的值。</td></tr>
</table><br>
<b>Returns:</b><br>
包含 <span class="funcparam">value</span> 的新 LinkedListNode(T)。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">find</span>
<script>explorer.outline.addDecl('find');</script>

(T <span class="funcparam">value</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>查找包含指定值的第一个节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">value</span></td>

               
<td>要在 LinkedList(T) 中定位的值。</td></tr>
</table><br>
<b>Returns:</b><br>
如果找到，则为包含指定值的第一个 LinkedListNode(T)；否则为 <b>null</b>。
<br><br>
<b>Comments:</b><br>
在 LinkedList(T) 中从 first 处开始向前搜索，并在 last 处结束搜索。
           此方法执行线性搜索；因此，此方法的运算复杂度为 O(n)，其中 n 是 count。
<br><br>

           使用此方法的引用类型和值类型最好重载 opEquals，opCmp 和 toHash。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">findLast</span>
<script>explorer.outline.addDecl('findLast');</script>

(T <span class="funcparam">value</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>查找包含指定值的最后一个节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">value</span></td>

               
<td>要在 LinkedList(T) 中定位的值。</td></tr>
</table><br>
<b>Returns:</b><br>
如果找到，则为包含指定值的最后一个 LinkedListNode(T)；否则为 <b>null</b>。
<br><br>
<b>Comments:</b><br>
在 LinkedList(T) 中从 last 处开始向后搜索，并在 first 处结束搜索。
           此方法执行线性搜索；因此，此方法的运算复杂度为 O(n)，其中 n 是 count。
<br><br>

           使用此方法的引用类型和值类型最好重载 opEquals，opCmp 和 toHash。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">remove</span>
<script>explorer.outline.addDecl('remove');</script>

(LinkedListNode!(T) <span class="funcparam">node</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>从 LinkedList(T) 中移除指定的节点。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">LinkedListNode!(T) <span class="funcparam">node</span></td>

               
<td>要从 LinkedList(T) 移除的 LinkedListNode(T)。</td></tr>
</table><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">removeFirst</span>
<script>explorer.outline.addDecl('removeFirst');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>移除位于 LinkedList(T) 开头处的节点。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">removeLast</span>
<script>explorer.outline.addDecl('removeLast');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>移除位于 LinkedList(T) 结尾处的节点。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">first</span>
<script>explorer.outline.addDecl('first');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取 LinkedList(T) 的第一个节点。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">LinkedListNode!(T) 
<span class="currsymbol">last</span>
<script>explorer.outline.addDecl('last');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取 LinkedList(T) 的最后一个节点。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">isEmpty</span>
<script>explorer.outline.addDecl('isEmpty');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>查看链表是否为空。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">int 
<span class="currsymbol">count</span>
<script>explorer.outline.addDecl('count');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取 LinkedList(T) 中实际包含的节点数。
<br><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(1)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">isReadOnly</span>
<script>explorer.outline.addDecl('isReadOnly');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>查看链表是否只读。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">add</span>
<script>explorer.outline.addDecl('add');</script>

(T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>添加指定的元素到链表中。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">clear</span>
<script>explorer.outline.addDecl('clear');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>从 LinkedList(T) 中移除所有节点。
<br><br>
<b>Comments:</b><br>
count 被设置为零，并且集合中的元素对其他对象的引用也被释放。
           first 和 last 被设置为 <b>null</b>。
           此方法的运算复杂度为 O(n)，其中 n 是 count。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">contains</span>
<script>explorer.outline.addDecl('contains');</script>

(T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>确定某值是否在 LinkedList(T) 中。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>要在 LinkedList(T) 中定位的值。对于引用类型，该值可以为 <b>null</b>。</td></tr>
</table><br>
<b>Returns:</b><br>
如果在 LinkedList(T) 中找到则为 <b>true</b>；否则为 <b>false</b>。
<br><br>
<b>Comments:</b><br>
此方法执行线性搜索；因此，此方法的运算复杂度为 O(n)，其中 n 是 count。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">toArray</span>
<script>explorer.outline.addDecl('toArray');</script>

(T[] <span class="funcparam">array</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>将整个 LinkedList(T) 复制到一维 Array。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T[] <span class="funcparam">array</span></td>

               
<td>作为从 LinkedList(T) 复制元素的一维 Array。</td></tr>
</table><br>
<b>Comments:</b><br>
此方法的运算复杂度为 O(n)，其中 n 是 count。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">bool 
<span class="currsymbol">remove</span>
<script>explorer.outline.addDecl('remove');</script>

(T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>从 LinkedList(T) 中移除指定值的第一个匹配项。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>要从 (T) 中移除的值。</td></tr>
</table><br>
<b>Returns:</b><br>
如果成功移除包含 value 的元素，则为 <b>true</b>；否则为 <b>false</b>。
          如果在原始 LinkedList(T) 中没有找到 value，此方法也会返回 <b>false</b>。
<br><br>
<b>Comments:</b><br>
此方法执行线性搜索；因此，此方法的运算复杂度为 O(n)，其中 n 是 count。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">T 
<span class="currsymbol">opIndex</span>
<script>explorer.outline.addDecl('opIndex');</script>

(int <span class="funcparam">index</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>获取指定索引处的元素。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">int <span class="funcparam">index</span></td>

               
<td>要获得的元素从零开始的索引。
         索引值必须小于 count 。</td></tr>
</table><br>
<b>Throws:</b><br>
InvalidOperationException，当链表为空时。
<br><br>
<b>Comments:</b><br>
LinkedList(T) 接受 <b>null</b> 作为引用类型的有效值并且允许有重复的元素。
           通过使用下面的语法，此属性提供了访问集合中特定元素的能力：list[<span class="funcparam">index</span>]。
           检索此属性值的运算复杂度为 O(n)；
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">opIndexAssign</span>
<script>explorer.outline.addDecl('opIndexAssign');</script>

(T <span class="funcparam">item</span>, int <span class="funcparam">index</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>设置指定索引处的元素。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">int <span class="funcparam">index</span></td>

               
<td>要获得的元素从零开始的索引。
         索引值必须小于 count 。</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>要设置的元素值。</td></tr>
</table><br>
<b>Throws:</b><br>
InvalidOperationException，当链表为空时。
<br><br>
<b>Comments:</b><br>
LinkedList(T) 接受 <b>null</b> 作为引用类型的有效值并且允许有重复的元素。
           通过使用下面的语法，此属性提供了设置集合中特定元素的能力：list[<span class="funcparam">index</span>] = <span class="funcparam">item</span>。
           设置此属性值的运算复杂度为 O(n)；
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">int 
<span class="currsymbol">indexOf</span>
<script>explorer.outline.addDecl('indexOf');</script>

(T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>搜索指定的对象，并返回整个 LinkedList(T) 中第一个匹配项的从零开始的索引。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>要在 LinkedList(T) 中定位的对象。对于引用类型，该值可以为 <b>null</b> 。</td></tr>
</table><br>
<b>Returns:</b><br>
如果在整个 LinkedList(T) 中找到 <span class="funcparam">item</span> 的第一个匹配项，则为该项的从零开始的索引；否则为 -1。
<br><br>
<b>Comments:</b><br>
从 LinkedList(T) 的第一个元素开始向前搜索，到最后一个元素停止搜索。
           此方法执行线性搜索；因此，此方法的运算复杂度为 O(n)，其中 n 是 count。
<br><br>

           使用此方法的引用类型和值类型最好重载 opEquals，opCmp 和 toHash。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">insert</span>
<script>explorer.outline.addDecl('insert');</script>

(int <span class="funcparam">index</span>, T <span class="funcparam">item</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>将元素插入 LinkedList(T) 的指定索引处。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">int <span class="funcparam">index</span></td>

               
<td>从零开始的索引，应在该位置插入 <span class="funcparam">item</span>。</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">T <span class="funcparam">item</span></td>

               
<td>要插入的对象。对于引用类型，该值可以为 <b>null</b> 。</td></tr>
</table><br>
<b>Comments:</b><br>
LinkedList(T) 接受 <b>null</b> 作为引用类型的有效值并且允许有重复的元素。
           如果 <span class="funcparam">index</span> 等于 0，而链表又为空或者如果 <span class="funcparam">index</span> 等于 count，
           则将 <span class="funcparam">item</span> 添加到 LinkedList(T) 的结尾处。
           此时方法的时间复杂度为O(1)。
           其他情况的时间复杂度为 O(n)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">removeAt</span>
<script>explorer.outline.addDecl('removeAt');</script>

(int <span class="funcparam">index</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>移除 LinkedList(T) 指定索引处的元素。
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">int <span class="funcparam">index</span></td>

               
<td>要移除的元素的从零开始的索引。</td></tr>
</table><br>
<b>Comments:</b><br>
在链表非空的情况下，此方法的时间复杂度为O(n)。
	 
<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">ReadOnlyListCollection!(T) 
<span class="currsymbol">asReadOnly</span>
<script>explorer.outline.addDecl('asReadOnly');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>返回当前集合的只读 IList(T) 包装。
<br><br>
<b>Returns:</b><br>
作为当前 LinkedList(T) 周围的只读包装的 ReadOnlyListCollection(T)。
<br><br>
<b>Comments:</b><br>
若要防止对 LinkedList(T) 的任何修改，应该仅通过此包装公开 LinkedList(T)。
           只读集合只是一个具有用于防止修改的包装的集合；因此，如果更改基础集合，则只读集合将反映那些更改。
           此方法的运算复杂度是 O(1)。
	 
<br><br>

</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</td></tr>
		<tr><td id="docfooter">
			Page was generated with
			<img src="candydoc/img/candydoc.gif" style="vertical-align:middle; position:relative; top:-1px">
			on Sat Nov 29 22:33:12 2008

		</td></tr>
	</table>
</div>
<script>
	explorer.packageExplorer.addModule("platform.PAL");
	explorer.packageExplorer.addModule("platform.windows.Core");
	explorer.packageExplorer.addModule("platform.linux.Core");
	explorer.packageExplorer.addModule("system.Array");
	explorer.packageExplorer.addModule("system.BitArray");
	explorer.packageExplorer.addModule("system.Environment");
	explorer.packageExplorer.addModule("system.Event");
	explorer.packageExplorer.addModule("system.Exception");
	explorer.packageExplorer.addModule("system.Hash");
	explorer.packageExplorer.addModule("system.IntPtr");
	explorer.packageExplorer.addModule("system.Random");
	explorer.packageExplorer.addModule("system.Traits");
	explorer.packageExplorer.addModule("system.TypeTuple");
	explorer.packageExplorer.addModule("system.math.IEEE");
	explorer.packageExplorer.addModule("system.math.Math");
	explorer.packageExplorer.addModule("system.runtime.c.complex");
	explorer.packageExplorer.addModule("system.runtime.c.config");
	explorer.packageExplorer.addModule("system.runtime.c.ctype");
	explorer.packageExplorer.addModule("system.runtime.c.errno");
	explorer.packageExplorer.addModule("system.runtime.c.fenv");
	explorer.packageExplorer.addModule("system.runtime.c.inttypes");
	explorer.packageExplorer.addModule("system.runtime.c.limits");
	explorer.packageExplorer.addModule("system.runtime.c.locale");
	explorer.packageExplorer.addModule("system.runtime.c.math");
	explorer.packageExplorer.addModule("system.runtime.c.signal");
	explorer.packageExplorer.addModule("system.runtime.c.stdarg");
	explorer.packageExplorer.addModule("system.runtime.c.stddef");
	explorer.packageExplorer.addModule("system.runtime.c.stdint");
	explorer.packageExplorer.addModule("system.runtime.c.stdio");
	explorer.packageExplorer.addModule("system.runtime.c.stdlib");
	explorer.packageExplorer.addModule("system.runtime.c.string");
	explorer.packageExplorer.addModule("system.runtime.c.time");
	explorer.packageExplorer.addModule("system.runtime.c.wctype");
	explorer.packageExplorer.addModule("system.text.UTF");
	explorer.packageExplorer.addModule("system.threading.Atomic");
	explorer.packageExplorer.addModule("system.threading.ThreadUtility");
	explorer.packageExplorer.addModule("system.threading.synchronization.SpinWait");
	explorer.packageExplorer.addModule("system.collections.ArrayList");
	explorer.packageExplorer.addModule("system.collections.Comparer");
	explorer.packageExplorer.addModule("system.collections.Deque");
	explorer.packageExplorer.addModule("system.collections.EqualityComparer");
	explorer.packageExplorer.addModule("system.collections.Exception");
	explorer.packageExplorer.addModule("system.collections.HashMap");
	explorer.packageExplorer.addModule("system.collections.HashSet");
	explorer.packageExplorer.addModule("system.collections.ICollection");
	explorer.packageExplorer.addModule("system.collections.IComparer");
	explorer.packageExplorer.addModule("system.collections.IDeque");
	explorer.packageExplorer.addModule("system.collections.IEnumerable");
	explorer.packageExplorer.addModule("system.collections.IEnumerator");
	explorer.packageExplorer.addModule("system.collections.IEqualityComparer");
	explorer.packageExplorer.addModule("system.collections.IList");
	explorer.packageExplorer.addModule("system.collections.IMap");
	explorer.packageExplorer.addModule("system.collections.IQueue");
	explorer.packageExplorer.addModule("system.collections.LinkedList");
	explorer.packageExplorer.addModule("system.collections.Pair");
	explorer.packageExplorer.addModule("system.collections.PrimeHelper");
	explorer.packageExplorer.addModule("system.collections.PriorityQueue");
	explorer.packageExplorer.addModule("system.collections.Queue");
	explorer.packageExplorer.addModule("system.collections.RBTree");
	explorer.packageExplorer.addModule("system.collections.Stack");
	explorer.packageExplorer.addModule("system.collections.TreeMap");
	explorer.packageExplorer.addModule("system.collections.TreeSet");
	explorer.packageExplorer.addModule("system.collections.objectmodel.ListCollection");
	explorer.packageExplorer.addModule("system.collections.objectmodel.ReadOnlyListCollection");</script>
</body></html>


